package util;

import sun.management.jdp.JdpException;

import java.lang.reflect.Field;

public class BeanUtil {
    /**
     *  将origin对象修改成和dest对象的值相同
     * @param origin  需要修改的对象
     * @param dest     修改后的对象
     */
    public static void populate(Object origin,Object dest) {

        if(origin.getClass()!=dest.getClass()){
            throw new RuntimeException("俩个对象必须是同种对象");
        }
        Class<?> originClass = origin.getClass();

        //获取字段
        //临时改变访问权限
        //f.set( ,f,get()) 修改值
        Field[] fields = originClass.getFields();
        for(Field field:fields){
            if ("serialVersionUID".equals(field.getName())) {  //字段名为标识符的时候退出
                continue;
            }

            field.setAccessible(true);

            try {
                field.set(origin, field.get(dest));
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }

    }
}
